The present invention relates to a method and apparatus for image processing, and in particular relates to the rendering operations in a Z-buffered polygon-based graphics system.
It is a common technique in real-time computer graphics to model objects as meshes of polygonal image primitives, especially triangles, for ease of handling. This is particularly the case for three-dimensional object modelling wherein, to obtain a two-dimensional image from three-dimensional image data, the polygons making up the object surface in three-dimensional space are projected into two-dimensional space and, following any necessary calculation or reference to look-up tables, appropriate pixel values (including colour, texture etc.) are mapped onto pixel positions within the projected two-dimensional polygon.
Z-buffering is a well known technique in computer graphics and involves the storage of a depth (Z) value for each pixel position within a polygon to allow depth sorting for overlapping polygons and consequently the avoidance of unnecessary pixel value mapping for polygons that are occluded by another polygon in front of them. An example of this is described in, for example, U.S. Pat. No. 5,825,363 (Anderson) wherein, per pixel, an initial determination is made as to whether a selected geometric shape obscures another geometric shape at that pixel and, if so, the value of the selected shape at that pixel is stored.
Colour buffering is also a known technique in computer graphics and involves the use of a buffer in which pixel colour or texture values for subsequent display are assembled: where an image is constructed a polygon at a time, the colour or texture at a given pixel may change a number of times during rendering of a frame as successive polygons impacting that pixel are processed. On the other hand, where no polygons impact a given pixel, that pixel will remain unchanged with a specified background colour for the image. At the conclusion of rendering the image, the Z buffer contents typically have to be cleared with whatever background depth value is specified replacing the accumulated depth values for the polygons. Also, where only a single display buffer is provided for screen refresh, it will be necessary for the contents of the colour buffer to be copied to the display buffer at the conclusion of rendering: where a pair of alternating display buffers are provided, the image can be constructed directly into one whilst the other provides screen refresh for the preceding image.
A problem common to most, if not all, such architectures arises at the conclusion to rendering when there is a large amount of memory transfer going on whilst little processing occurs. This volume of data transfer results in a bottleneck in the rendering process which can degrade the overall performance, and a number of techniques have been proposed to improve efficiency in handling of Z values in particular. In U.S. Pat. No. 5,748,864 (Martin), a method of rendering is disclosed in which each stored Z value is augmented by a sequence number such that it is not necessary for the Z buffer to be cleared at each frame; by reference to the sequence numbering, the buffer contents can be recycled a number of times between clears, although this does of course require a larger buffer to accomodate the additional data of the sequence numbers. In U.S. Pat. No. 5,517,603 (Kelley et al), there is disclosed a rendering device using a hardware scanline approach in which the bandwidth requirements between a system frame buffer and the rendering device are minimised by building up the image a line at a time thereby requiring much smaller (and therefore faster) buffers, although with much more frequent copying or data transfer operations.
It is an object of the present invention to provide an image processing technique (and apparatus embodying the same) which improves handling efficiency by reducing bandwidth requirements when clearing buffers and without sacrificing buffer capacity to sequence numbers.
According to a first aspect of the present invention there is provided a method of operating a Z buffer and a colour buffer in an image processing system for providing a two-dimensional pixel image composed of a plurality of polygonal image primitives and a background, said method comprising the steps of:
a) rendering image primitives relating to foreground in the colour buffer and the Z buffer; and
b) scanning the Z buffer and for each pixel, if the Z value is a predetermined background value, clearing the corresponding location in the colour buffer to background colour, and if the Z value is not said predetermined background value, clearing the Z buffer to said predetermined background value.
According to a second aspect of the present invention there is provided a method of operating a Z buffer and a colour buffer in an image processing system for providing a two-dimensional image composed of a plurality of polygonal image primitives and a background, said method comprising the steps of:
a) rendering image primitives relating to foreground in the colour buffer and the Z buffer;
b) scanning the Z buffer and for each pixel, if the Z value is a predetermined background value, copying the background colour to a store, and if the Z value is not said predetermined background value, copying the colour value to the store and clearing the Z value.
In one implementation of the inventive method, use is made of the fact that pixels whose Z value is still set to the background value (which might suitably be at Z=0) have not been altered, and these values do not have to be cleared to their background state. Also, the colour buffer is not cleared before the rendering process is begun; for those pixels whose Z values are still set to the background value, the colour values can be set to the background value after rendering of the foreground pixels. In effect for such an implementation, for each pixel, either a Z value or a colour value is written during the buffer clearing process, but never both.
Also according to the first and second aspects of the present invention there are provided image processing systems as defined in the attached claims to which refernce should be made and the disclosures of which are incorporated herein by reference.